home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / doc / update-notifier / HOOKS < prev    next >
Text File  |  2009-10-15  |  4KB  |  80 lines

  1. After certain upgrades (most notably upgrades between Ubuntu
  2. releases), there are follow-up actions which should be taken by the
  3. user. These are not logically part of the upgrade, but should be dealt
  4. with at some point after the upgrade is complete.
  5.  
  6. A prime example is the UTF8MigrationTool. During an upgrade from
  7. WartyWarthog to HoaryHedgehog, the system will be configured such that
  8. UTF-8 encoding is available, and will be expected by applications per
  9. default. The user should switch to a UTF-8 locale, and possibly rename
  10. or re-encode files in order to achieve the best user experience. These
  11. things cannot be done in automated fashion during the upgrade, but
  12. must instead be dealt with interactively by the user.
  13.  
  14. Another example is the reboot notification. Packages like the kernel,
  15. glibc, dbus and hal require a reboot. To simplify things
  16. update-notifier installs a helper script in
  17.  
  18. /usr/share/update-notifier/notify-reboot-required
  19.  
  20. that can be called in the packages postinst script (make sure to check
  21. for it first). It is i18n-able via langpacks and it will only be shown
  22. once.  
  23.  
  24. Design:
  25.  * Maintainer scripts create/copy a notification to
  26.    /var/lib/update-notifier/user.d
  27.  * update-notifier checks for those after each apt invocation (when
  28.    /var/lib/update-notifier/dpkg-was-run changed) and notifies the user
  29.    that they are pending
  30.  * When the user selects to process pending actions, they are executed
  31.    in sequence within the context of the user and the desktop (and so
  32.    can display a GUI, interact with the user, etc.)
  33.  
  34. Details:
  35.  * the directory /var/lib/update-notifier/user.d/ is used to store hooks
  36.  * a hook file looks follows rfc822 rules:
  37.    - a fieldname may have a "-$locale" in it. This is for i18n.
  38.    - if "GettextDomain" is found, dgettext() will also be tried to get a
  39.      i18n string (for langpacks)
  40.    - each hook must have a unique "Name" key and a "Description" key
  41.    - a optional "Priority" with {crititcal, high, medium, low} that
  42.      gives the user a idea how importend the hook is (currently not used) 
  43.    - a optional "Command" field may be registered with a shell-command
  44.      that the user can run (e.g. a script like /usr/share/package/do-something)
  45.    - a optional "Terminal: True" field if the command should be
  46.      execute in a terminal
  47.    - update-notifier uses inotify to monitor
  48.      /var/lib/update-notifier/dpkg-was-run and
  49.      /var/lib/update-notifier/user.d/ and show a small information icon for
  50.      hooks it has not seen yet
  51.    - when the user clicks on the icon the name and description is
  52.      given. If a shell script is registered a button is displayed that will
  53.      run the script. the description in the hook should explain what the
  54.      script will do
  55.    - the encoding of the i18n fields is UTF-8
  56.    - the optional key "DontShowAfterReboot" will make sure that the 
  57.      notification is not shown when the system rebootet since it was 
  58.      created/refreshed 
  59.    - the optional key "DisplayIf" will run a shell command (system())
  60.      to figure out if the note should be displayed or not. If the command
  61.      returns 0 the note will be displayed, otherwise it will be ignored
  62.    - the optional key "OnlyAdminUsers" controls if the note is shown to all
  63.      users or only to the admin users (users in the admin group). the
  64.      default is "OnlyAdminsUsers=true".
  65.  
  66. Example
  67.  
  68. Name: The great UTF-8 Migration
  69. Name-de_DE: Die grosse UTF-8 Migration
  70. Priority: Medium
  71. Command: utf8-migration-assistant
  72. Terminal: True
  73. GettextDomain: utf8-migration-assistant
  74. DisplayIf: shell-command
  75. OnlyAdminUsers: False
  76. Description: This command will convert your stuff into UTF-8.
  77.  Use this command if you want a working gnome desktop and you
  78.  feel the world should be a better place.
  79.  
  80.